<?php

/**
 * personal actions.
 *
 * @package    cronos-doctrine
 * @subpackage personal
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class entidadActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
      
      
      $entidad = new Entidad();
      
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute('page_entidad', $request->getParameter('page'));
      }
      
      $this->entidads = new sfDoctrinePager('Entidad', sfConfig::get('app_x_pag'));
      $this->entidads->setQuery($entidad->getEntidad());
      $this->entidads->setPage($this->getUser()->getAttribute('page_entidad'));
      $this->entidads->init();
      
      
      $municipio = new Municipio();
      $this->municipios = $municipio->getTotalMunicipiosCount(); 
      
    
  }

  public function executeNew(sfWebRequest $request)
  {
    $this->form = new EntidadForm();
    $this->return = $request->getParameter('return')+0;
    
    
  }

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new EntidadForm();
    
    $this->processForm($request, $this->form);

    
    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {
    $this->forward404Unless($entidad = Doctrine_Core::getTable('Entidad')->find(array($request->getParameter('id'))), sprintf('Object Entidad does not exist (%s).', $request->getParameter('id')));
    $this->form = new EntidadForm($entidad);
    
      $this->return = $request->getParameter('return')+0;
    
      //Municipios Asociadas internamente
      $municipio = new Municipio();
      ${'page_municipio_int'.$request->getParameter('id')} = 'page_municipio_int'.$request->getParameter('id');
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute(''.${'page_municipio_int'.$request->getParameter('id')}.'', $request->getParameter('page'));
      }

      $this->municipios = new sfDoctrinePager('Municipio', 8);
      $this->municipios->setQuery($municipio->getMunicipioEntidadId($request->getParameter('id')));
      $this->municipios->setPage($this->getUser()->getAttribute(${'page_municipio_int'.$request->getParameter('id')}));
      $this->municipios->init();
      
      $clientes = new Usuario();
      $this->clientes = $clientes->getTotalUsuariosMunicipio();
      
      $colonias = new Parroquia();
      $this->colonias = $colonias->getTotalParroquiasMunicipio();
      
      
      
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($entidad = Doctrine_Core::getTable('Entidad')->find(array($request->getParameter('id'))), sprintf('Object Entidad does not exist (%s).', $request->getParameter('id')));
    $this->form = new EntidadForm($entidad);

    $this->processForm($request, $this->form);
    
     //Municipios Asociadas internamente
      $municipio = new Municipio();
      ${'page_municipio_int'.$request->getParameter('id')} = 'page_municipio_int'.$request->getParameter('id');
      //Hace permanente la pagina en una variable de sesion
      if($request->getParameter('page')){
          $this->getUser()->setAttribute(''.${'page_municipio_int'.$request->getParameter('id')}.'', $request->getParameter('page'));
      }

      $this->municipios = new sfDoctrinePager('Municipio', 8);
      $this->municipios->setQuery($municipio->getMunicipioEntidadId($request->getParameter('id')));
      $this->municipios->setPage($this->getUser()->getAttribute(${'page_municipio_int'.$request->getParameter('id')}));
      $this->municipios->init();
      
      $clientes = new Usuario();
      $this->clientes = $clientes->getTotalUsuariosMunicipio();
      
      $this->return = $request->getParameter('return')+0;
    
    $this->setTemplate('edit');
    
  }

  public function executeDelete(sfWebRequest $request)
  {
    $request->checkCSRFProtection();

    $this->forward404Unless($entidad = Doctrine_Core::getTable('Entidad')->find(array($request->getParameter('id'))), sprintf('Object Entidad does not exist (%s).', $request->getParameter('id')));
    $entidad->delete();
    
    $this->return = $request->getParameter('return')+0;
    
    if($this->return>0)
        $this->redirect('area/edit?id='.$this->return);
    else
        $this->redirect('entidad/index');
    
    
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $entidad = $form->save();
      $this->redirect('entidad/edit?return='.$entidad->getPaisId().'&id='.$entidad->getId());
    }
  }
}
